import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'



// axios.defaults.headers.post["Content-Type"] = "application/json";
axios.defaults.headers.post["Content-Type"] = "application/json";

(axios.defaults.headers as any)["X-Requested-With"] = 'XMLHttpRequest';

axios.defaults.timeout=10000;
//同步请求
axios.defaults.withCredentials = true;
// axios.defaults.headers['token'] = localStorage.getItem('token') || ''
// axios.defaults.baseURL = "api";
console.log("当前环境变量：" + process.env.NODE_ENV); // development（在终端输出）
console.log("当前环境路径：" + import.meta.env.VITE_BASE_URL);
console.log("当前环境路径：" + import.meta.env.VITE_BASE_API);

if (process.env.NODE_ENV === "development")
  axios.defaults.baseURL = import.meta.env.VITE_BASE_API;
else axios.defaults.baseURL = import.meta.env.VITE_BASE_API;


// 请求拦截
axios.interceptors.request.use(
    (config: AxiosRequestConfig) => { 
      // 可在这里做一些数据的校验。
      // session的校验等。
      return config 
    },
    (error: AxiosError) => { 
      return error 
    }
  )


  // 响应拦截
axios.interceptors.response.use((result: AxiosResponse) => {
    // ===========================================================
    // 返回方式一
    /*console.log(result);
    if (result.status === 200) {
      if (result.data && result.data.code > 0) {
        return Promise.resolve(result);
      } else {
        alert(result.data.msg || "操作失败");
        return Promise.reject(result);
      }
    } else {
      alert("网络异常");
      return Promise.reject(result);
    }//*/
   
    // ==========================================================
    // 返回方式二
    // 返回数据前做了什么
    // console.log(result);
    if (result.data.code < -100) 
    {
      if (result.data.msg)
      {
        // 调用自定义alert
        // utils.alert(result.data.msg, function () {
        //   window.location.assign('/pc/index');
        // });
      }
      return Promise.reject(result.data.data)
    }
    return result;
  }, (err: AxiosError) => {
    // utils.alertLoadExec(false);
    // 返回数据前做了什么
    return Promise.reject(err)
  })


  
export default axios;
  

  